Data from those floats are automatically downloaded in the repo by a github action, so we can use localftp source from argopy to check the data.
Here we work with argopy (https://argopy.readthedocs.io), so with xarray datasets
author = "kevin.balem@ifremer.fr"
from argopy import IndexFetcher, DataFetcher
import matplotlib.pyplot as plt
import cmocean as cm
from matplotlib.ticker import MaxNLocator
from matplotlib.lines import Line2D
import matplotlib.gridspec as gridspec
import cartopy.crs as ccrs
plt.rcParams['axes.grid'] = True
import numpy as np
import gsw
import xarray as xr
import pandas as pd
wmos = [6903075,6903076]
IndexFetcher(src='erddap',cache=False).float(wmos).plot()
(<Figure size 720x720 with 1 Axes>, <cartopy.mpl.geoaxes.GeoAxesSubplot at 0x7f8ea794de10>)
# GET DATA FROM REPO DATA COPY (cache=False because new profiles are added to the repo)
ds = DataFetcher(cache=False,src='localftp',local_ftp='/export/home/kbalem/Bureau/earise-rbr/data/floats/ftp',mode='expert').float(wmos).to_xarray()
# CALCULATE TEOS10 VARIABLE
ds.argo.teos10(['SA','SIG0','PTEMP'])
# TURN TO PROFILES
ds = ds.argo.point2profile()
ds0=ds.where(ds['PLATFORM_NUMBER']==wmos[0],drop=True)
ds1=ds.where(ds['PLATFORM_NUMBER']==wmos[1],drop=True)
def full_profiles(ds0=ds0,ds1=ds1,markersize=1):
fig,ax = plt.subplots(len(wmos),2,figsize=(16,len(wmos)*8),sharey=True)
ax[0,0].invert_yaxis();
ax[0,0].plot(ds0['TEMP'],-gsw.z_from_p(ds0['PRES'],ds0['LATITUDE'].mean()),'.k',markersize=markersize)
ax[0,1].plot(ds0['PSAL'],-gsw.z_from_p(ds0['PRES'],ds0['LATITUDE'].mean()),'.k',markersize=markersize)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[0,0].set_ylabel('Depth',fontsize='large',fontweight='bold')
a=ax[0,1].text(1.05,0.4,'float '+str(wmos[0]),rotation="vertical",transform = ax[0,1].transAxes, fontsize='large', fontweight='bold')
ax[0,0].set_xlabel('Temperature',fontsize='large',fontweight='bold')
ax[0,1].set_xlabel('Salinity',fontsize='large',fontweight='bold')
ax[1,0].plot(ds1['TEMP'],-gsw.z_from_p(ds1['PRES'],ds1['LATITUDE'].mean()),'.k',markersize=markersize)
ax[1,1].plot(ds1['PSAL'],-gsw.z_from_p(ds1['PRES'],ds1['LATITUDE'].mean()),'.k',markersize=markersize)
ax[1,0].set_ylabel('Depth',fontsize='large',fontweight='bold')
a=ax[1,1].text(1.05,0.4,'float '+str(wmos[1]),rotation="vertical",transform = ax[1,1].transAxes, fontsize='large', fontweight='bold')
ax[1,0].set_xlabel('Temperature',fontsize='large',fontweight='bold')
ax[1,1].set_xlabel('Salinity',fontsize='large',fontweight='bold')
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
return fig,ax
fig,ax = full_profiles(ds0=ds0.isel(N_PROF=1),ds1=ds1.isel(N_PROF=1))
# TS DIAGRAM
def full_ts(ds0=ds0,ds1=ds1,vmin=25.95,vmax=27.8,sigma=8):
mint=ds['PTEMP'].min()
maxt=ds['PTEMP'].max()
mins=ds['SA'].min()
maxs=ds['SA'].max()
tempL=np.linspace(mint-1,maxt+1,156)
salL=np.linspace(mins-1,maxs+1,156)
Tg, Sg = np.meshgrid(tempL,salL)
sigma_theta = gsw.sigma0(Sg, Tg)
fig,ax=plt.subplots(1,2,figsize=(25,10))
cs = ax[0].contour(Sg, Tg, sigma_theta,sigma, colors='grey', zorder=1)
cl=ax[0].clabel(cs,fontsize=10,inline=False,fmt='%.1f')
sc=ax[0].scatter(ds0['SA'],ds0['PTEMP'],c=ds0['SIG0'],s=10,cmap=cm.cm.matter,vmin=vmin,vmax=vmax)
ax[0].set_xlabel('Salinity ($‰$)')
ax[0].set_ylabel('Temperature[$^\circ$C]')
ax[0].set_title(str(wmos[0]),fontsize=14, fontweight='bold')
ax[0].xaxis.set_major_locator(MaxNLocator(nbins=6))
ax[0].yaxis.set_major_locator(MaxNLocator(nbins=8))
ax[0].tick_params(direction='out')
cs = ax[1].contour(Sg, Tg, sigma_theta, sigma, colors='grey', zorder=1)
cl=ax[1].clabel(cs,fontsize=10,inline=False,fmt='%.1f')
sc=ax[1].scatter(ds1['SA'],ds1['PTEMP'],c=ds1['SIG0'],s=10,cmap=cm.cm.matter,vmin=vmin,vmax=vmax)
ax[1].set_xlabel('Salinity ($‰$)')
ax[1].set_ylabel('Temperature[$^\circ$C]')
ax[1].set_title(str(wmos[1]),fontsize=14, fontweight='bold')
ax[1].xaxis.set_major_locator(MaxNLocator(nbins=6))
ax[1].yaxis.set_major_locator(MaxNLocator(nbins=8))
ax[1].tick_params(direction='out')
cb=plt.colorbar(sc,ax=ax.ravel().tolist())
cb.ax.tick_params(direction='out')
cb.set_label('Density[kg m$^{-3}$]')
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0, label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10)],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0, label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10)],loc='lower right')
return fig,ax
fig,ax = full_ts()
# WOA OPENDAP URL FOR 2005-2017, GLOBAL 1/4°
woa_temp='https://www.ncei.noaa.gov/thredds-ocean/dodsC/ncei/woa/temperature/A5B7/0.25/woa18_A5B7_t13_04.nc'
woa_psal='https://www.ncei.noaa.gov/thredds-ocean/dodsC/ncei/woa/salinity/A5B7/0.25/woa18_A5B7_s13_04.nc'
# LOAD DATASETS, No need to decode times for a clim
woat = xr.open_dataset(woa_temp,decode_times=False)
woas = xr.open_dataset(woa_psal,decode_times=False)
# INTERPOLATE WOA T/S/SIG TO FLOAT POSITION
woat_float0 = woat['t_mn'].interp(lat=ds0['LATITUDE'],lon=ds0['LONGITUDE'],method='linear').squeeze().to_dataset()
woas_float0 = woas['s_mn'].interp(lat=ds0['LATITUDE'],lon=ds0['LONGITUDE'],method='linear').squeeze().to_dataset()
woa_float0 = xr.merge([woat_float0,woas_float0])
woat_float1 = woat['t_mn'].interp(lat=ds1['LATITUDE'],lon=ds1['LONGITUDE'],method='linear').squeeze().to_dataset()
woas_float1 = woas['s_mn'].interp(lat=ds1['LATITUDE'],lon=ds1['LONGITUDE'],method='linear').squeeze().to_dataset()
woa_float1 = xr.merge([woat_float1,woas_float1])
# Reduce depth range
woa_float0 = woa_float0.sel(depth=slice(0,2000))
woa_float1 = woa_float1.sel(depth=slice(0,2000))
fig,ax=full_profiles()
ax[0,0].plot(woa_float0['t_mn'],woa_float0['depth'],'.r',markersize=4)
ax[0,1].plot(woa_float0['s_mn'],woa_float0['depth'],'.r',markersize=4)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='WOA ',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[1,0].plot(woa_float1['t_mn'],woa_float1['depth'],'.r',linewidth=1)
ax[1,1].plot(woa_float1['s_mn'],woa_float1['depth'],'.r')
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='WOA ',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
<matplotlib.legend.Legend at 0x7f9c77756e10>
# ZOOM
fig,ax=full_profiles(markersize=4)
ax[0,0].set_ylim(2000,1500)
ax[0,0].plot(woa_float0['t_mn'],woa_float0['depth'],'.r',markersize=8)
ax[0,1].plot(woa_float0['s_mn'],woa_float0['depth'],'.r',markersize=8)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='WOA ',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[1,0].plot(woa_float1['t_mn'],woa_float1['depth'],'.r',linewidth=1)
ax[1,1].plot(woa_float1['s_mn'],woa_float1['depth'],'.r')
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='WOA ',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[0,0].set_xlim(4,6.5); ax[1,0].set_xlim(4,6.5);
ax[0,1].set_xlim(35.,35.5); ax[1,1].set_xlim(35.,35.5);
# GSW
pr0 = np.empty([len(woa_float0['depth']),len(woa_float0['N_PROF'])])
pr1 = np.empty([len(woa_float1['depth']),len(woa_float1['N_PROF'])])
for i in range(len(woa_float0['N_PROF'])):
pr0[:,i]=gsw.p_from_z(-woa_float0['depth'],woa_float0['LATITUDE'].isel(N_PROF=i))
woa_float0['PRES']=xr.DataArray(pr0,dims=['depth','N_PROF'])
woa_float0['SA']=xr.DataArray(gsw.SA_from_SP(woa_float0['s_mn'],woa_float0['PRES'],woa_float0['LONGITUDE'],woa_float0['LATITUDE']),dims=['depth','N_PROF'])
woa_float0['PTEMP']=xr.DataArray(gsw.pt0_from_t(woa_float0['SA'],woa_float0['t_mn'],woa_float0['PRES']),dims=['depth','N_PROF'])
woa_float0['SIG0']=xr.DataArray(gsw.sigma0(woa_float0['SA'], woa_float0['PTEMP']),dims=['depth','N_PROF'])
for i in range(len(woa_float1['N_PROF'])):
pr0[:,i]=gsw.p_from_z(-woa_float1['depth'],woa_float1['LATITUDE'].isel(N_PROF=i))
woa_float1['PRES']=xr.DataArray(pr0,dims=['depth','N_PROF'])
woa_float1['SA']=xr.DataArray(gsw.SA_from_SP(woa_float1['s_mn'],woa_float1['PRES'],woa_float1['LONGITUDE'],woa_float1['LATITUDE']),dims=['depth','N_PROF'])
woa_float1['PTEMP']=xr.DataArray(gsw.pt0_from_t(woa_float1['SA'],woa_float1['t_mn'],woa_float1['PRES']),dims=['depth','N_PROF'])
woa_float1['SIG0']=xr.DataArray(gsw.sigma0(woa_float1['SA'], woa_float1['PTEMP']),dims=['depth','N_PROF'])
woa_float1
<xarray.Dataset>
Dimensions: (N_PROF: 20, depth: 67)
Coordinates:
* N_PROF (N_PROF) int64 0 21 22 23 24 25 26 27 ... 32 33 34 35 36 37 38 39
* depth (depth) float64 0.0 5.0 10.0 15.0 ... 1.9e+03 1.95e+03 2e+03
time float32 73.5
lat (N_PROF) float64 29.17 29.15 29.1 29.09 ... 30.41 30.57 30.56
lon (N_PROF) float64 -19.0 -19.02 -19.12 ... -18.55 -18.43 -18.29
TIME (N_PROF) datetime64[ns] 2020-12-11T10:25:00 ... 2021-06-10T05:...
LONGITUDE (N_PROF) float64 -19.0 -19.02 -19.12 ... -18.55 -18.43 -18.29
LATITUDE (N_PROF) float64 29.17 29.15 29.1 29.09 ... 30.41 30.57 30.56
Data variables:
t_mn (depth, N_PROF) float64 nan nan nan nan nan ... nan nan nan nan
s_mn (depth, N_PROF) float64 36.85 36.85 nan nan ... nan nan nan nan
PRES (depth, N_PROF) float64 0.0 0.0 0.0 ... 2.024e+03 2.024e+03
SA (depth, N_PROF) float64 37.02 37.02 nan nan ... nan nan nan nan
PTEMP (depth, N_PROF) float64 nan nan nan nan nan ... nan nan nan nan
SIG0 (depth, N_PROF) float64 nan nan nan nan nan ... nan nan nan nanarray([ 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39])array([ 0., 5., 10., 15., 20., 25., 30., 35., 40., 45.,
50., 55., 60., 65., 70., 75., 80., 85., 90., 95.,
100., 125., 150., 175., 200., 225., 250., 275., 300., 325.,
350., 375., 400., 425., 450., 475., 500., 550., 600., 650.,
700., 750., 800., 850., 900., 950., 1000., 1050., 1100., 1150.,
1200., 1250., 1300., 1350., 1400., 1450., 1500., 1550., 1600., 1650.,
1700., 1750., 1800., 1850., 1900., 1950., 2000.])array(73.5, dtype=float32)
array([29.16698167, 29.14661667, 29.10236333, 29.09201167, 29.05589833,
29.16621833, 29.403165 , 29.61847333, 29.87339 , 30.188525 ,
30.25565833, 30.11950667, 29.839565 , 29.52730333, 29.397985 ,
29.63578667, 30.05389167, 30.41144667, 30.56528833, 30.55954167])array([-19.00256167, -19.01972333, -19.11748333, -19.19157167,
-19.21113333, -19.24770667, -19.31360333, -19.471775 ,
-19.623935 , -19.645155 , -19.76130833, -19.79596 ,
-19.675635 , -19.46817667, -18.98621167, -18.52723167,
-18.43598333, -18.54520833, -18.42694833, -18.29108833])array(['2020-12-11T10:25:00.000000000', '2020-12-12T05:42:20.000000000',
'2020-12-22T05:41:20.000000000', '2021-01-01T05:44:20.000000000',
'2021-01-11T05:30:20.000000000', '2021-01-21T05:26:20.000000000',
'2021-01-31T05:33:20.000000000', '2021-02-10T05:39:20.000000000',
'2021-02-20T05:51:20.000000000', '2021-03-02T05:49:20.000000000',
'2021-03-12T05:39:20.000000000', '2021-03-22T05:32:20.000000256',
'2021-03-31T15:29:20.000000000', '2021-04-11T05:46:20.000000000',
'2021-04-21T05:43:20.000000000', '2021-05-01T05:36:20.000000000',
'2021-05-11T05:34:20.000000000', '2021-05-21T05:33:20.000000000',
'2021-05-31T05:34:20.000000000', '2021-06-10T05:35:20.000000000'],
dtype='datetime64[ns]')array([-19.00256167, -19.01972333, -19.11748333, -19.19157167,
-19.21113333, -19.24770667, -19.31360333, -19.471775 ,
-19.623935 , -19.645155 , -19.76130833, -19.79596 ,
-19.675635 , -19.46817667, -18.98621167, -18.52723167,
-18.43598333, -18.54520833, -18.42694833, -18.29108833])array([29.16698167, 29.14661667, 29.10236333, 29.09201167, 29.05589833,
29.16621833, 29.403165 , 29.61847333, 29.87339 , 30.188525 ,
30.25565833, 30.11950667, 29.839565 , 29.52730333, 29.397985 ,
29.63578667, 30.05389167, 30.41144667, 30.56528833, 30.55954167])array([[ nan, nan, nan, ..., 19.01039807,
18.90984795, 18.98240869],
[ nan, nan, nan, ..., 18.97005256,
18.89672097, 18.94847536],
[19.90413882, 19.92035109, nan, ..., 18.95651843,
18.89662712, 18.94794342],
...,
[ 4.61089416, 4.60302342, 4.59258237, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]])array([[36.84969759, 36.84659114, nan, ..., nan,
nan, 36.85349887],
[36.8497734 , 36.84663206, nan, ..., nan,
nan, 36.86229364],
[36.84939684, 36.84614153, nan, ..., nan,
nan, 36.86327018],
...,
[35.13615922, 35.13479267, 35.13258462, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]])array([[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 5.03398365, 5.03397561, 5.03395814, ..., 5.03448182,
5.03454428, 5.03454195],
[ 10.06809038, 10.06807429, 10.06803935, ..., 10.06908674,
10.06921166, 10.06920699],
...,
[1921.68375225, 1921.68066808, 1921.67397087, ..., 1921.87474249,
1921.8986882 , 1921.89779244],
[1972.4892769 , 1972.48611085, 1972.47923582, ..., 1972.68533806,
1972.70991956, 1972.70900001],
[2023.30671045, 2023.30346247, 2023.29640955, ..., 2023.5078448 ,
2023.53306235, 2023.53211901]])array([[37.02367059, 37.02054927, nan, ..., nan,
nan, 37.02750527],
[37.02375299, 37.02059666, nan, ..., nan,
nan, 37.03634423],
[37.02338065, 37.02010989, nan, ..., nan,
nan, 37.0373279 ],
...,
[35.30645312, 35.30508533, 35.30287918, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]])array([[ nan, nan, nan, ..., nan,
nan, 18.98240869],
[ nan, nan, nan, ..., nan,
nan, 18.94757269],
[19.9022703 , 19.91848154, nan, ..., nan,
nan, 18.94613791],
...,
[ 4.44131988, 4.4335649 , 4.42327891, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]])array([[ nan, nan, nan, ..., nan,
nan, 26.4295135 ],
[ nan, nan, nan, ..., nan,
nan, 26.44518668],
[26.18461764, 26.17783637, nan, ..., nan,
nan, 26.44629864],
...,
[27.85004258, 27.84982095, 27.84921646, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]])# TS DIAGRAM
fig,ax = full_ts()
sc_b=ax[0].scatter(woa_float0['SA'],woa_float0['PTEMP'],c=woa_float0['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k')
sc_b=ax[1].scatter(woa_float1['SA'],woa_float1['PTEMP'],c=woa_float1['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k')
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='WOA',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='WOA',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c740686a0>
# ZOOM
fig,ax = full_ts(vmin=27.8,vmax=27.9,sigma=40)
ax[0].set_ylim(4,7.5); ax[1].set_ylim(4,7.5)
ax[0].set_xlim(35.2,35.6); ax[1].set_xlim(35.2,35.6)
sc_b=ax[0].scatter(woa_float0['SA'],woa_float0['PTEMP'],c=woa_float0['SIG0'],s=20,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k')
sc_b=ax[1].scatter(woa_float1['SA'],woa_float1['PTEMP'],c=woa_float1['SIG0'],s=20,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k')
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='WOA',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='WOA',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c73ddaac8>
plt.figure()
# FETCH PROFILES META IN OUR REGION
IndexFetcher(cache=True,src='erddap').region([-19.8,-18.8,29.0,30.0]).plot()
# RBR PROFILES
plt.plot(ds['LONGITUDE'],ds['LATITUDE'],'k*',markersize=10)
[<matplotlib.lines.Line2D at 0x7f9c9a6d64e0>]
<Figure size 432x288 with 0 Axes>
# GET DATA FROM ERDDAP, in standard mode to automatically keep good data
px = DataFetcher(cache=True,src='erddap',mode='standard').region([-19.8,-18.8,29.0,30.0,0.,2000.]).to_xarray()
# CALCULATE TEOS10 VARIABLE
px.argo.teos10(['SA','SIG0','PTEMP'])
# TURN TO PROFILES
px = px.argo.point2profile()
# Keep only december to may profiles
px['MONTH']=xr.DataArray(np.array(pd.DatetimeIndex(px['TIME'].values).month),dims='N_PROF')
px = px.where((px['MONTH']<=5)|(px['MONTH']==12), drop=True)
px
<xarray.Dataset>
Dimensions: (N_LEVELS: 1018, N_PROF: 59)
Coordinates:
* N_PROF (N_PROF) int64 1 2 12 14 15 ... 106 107 108 109 110
* N_LEVELS (N_LEVELS) int64 0 1 2 3 4 ... 1014 1015 1016 1017
TIME (N_PROF) datetime64[ns] 2002-05-14T05:00:00 ... 20...
LONGITUDE (N_PROF) float64 -19.3 -19.23 ... -19.48 -18.96
LATITUDE (N_PROF) float64 29.08 29.31 29.78 ... 29.51 29.58
Data variables:
CONFIG_MISSION_NUMBER (N_PROF) float64 2.0 2.0 2.0 1.0 ... 2.0 2.0 2.0 2.0
CYCLE_NUMBER (N_PROF) float64 5.0 6.0 60.0 6.0 ... 13.0 14.0 15.0
DATA_MODE (N_PROF) object 'D' 'D' 'D' 'D' ... 'R' 'R' 'R' 'R'
DIRECTION (N_PROF) object 'A' 'A' 'A' 'A' ... 'A' 'A' 'A' 'A'
PLATFORM_NUMBER (N_PROF) float64 1.9e+06 1.9e+06 ... 6.903e+06
POSITION_QC (N_PROF) float64 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
PRES (N_PROF, N_LEVELS) float32 15.0 25.0 35.0 ... nan nan
PRES_QC (N_PROF) float64 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
PSAL (N_PROF, N_LEVELS) float32 36.873 36.869 ... nan nan
PSAL_QC (N_PROF) float64 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
PTEMP (N_PROF, N_LEVELS) float64 19.41 19.41 ... nan nan
SA (N_PROF, N_LEVELS) float64 37.05 37.04 ... nan nan
SIG0 (N_PROF, N_LEVELS) float64 26.35 26.35 ... nan nan
TEMP (N_PROF, N_LEVELS) float32 19.41 19.41 ... nan nan
TEMP_QC (N_PROF) float64 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
TIME_QC (N_PROF) float64 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0
MONTH (N_PROF) float64 5.0 5.0 3.0 12.0 ... 2.0 4.0 4.0 5.0
Attributes:
DATA_ID: ARGO
DOI: http://doi.org/10.17882/42182
Fetched_from: https://www.ifremer.fr/erddap
Fetched_by: kbalem
Fetched_date: 2021/06/15
Fetched_constraints: [x=-19.80/-18.80; y=29.00/30.00; z=0.0/2000.0]
Fetched_uri: ['https://www.ifremer.fr/erddap/tabledap/ArgoFloats...
history: Variables filtered according to DATA_MODE; Variable...array([ 1, 2, 12, 14, 15, 25, 26, 27, 28, 42, 43, 32, 33, 34,
35, 48, 17, 49, 50, 18, 19, 51, 52, 44, 45, 46, 47, 69,
70, 71, 72, 73, 74, 75, 76, 20, 88, 89, 90, 91, 92, 93,
94, 95, 77, 78, 79, 0, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110])array([ 0, 1, 2, ..., 1015, 1016, 1017])
array(['2002-05-14T05:00:00.000000000', '2002-05-24T05:06:00.000000000',
'2006-03-13T03:30:00.000000000', '2006-12-22T12:27:44.000000000',
'2007-01-01T13:16:36.000000000', '2011-12-06T00:58:02.000000000',
'2012-12-29T23:17:55.000000000', '2013-01-14T02:29:24.000000000',
'2013-01-28T23:26:14.000000000', '2014-02-17T08:53:45.000000000',
'2014-02-27T06:52:43.000000000', '2014-03-15T14:21:36.000000000',
'2014-04-14T10:45:41.000000000', '2014-04-24T14:21:59.000000000',
'2014-05-04T11:45:41.000000000', '2015-04-30T05:56:00.000000000',
'2015-05-04T06:29:00.000000000', '2015-05-05T05:51:00.000000000',
'2015-05-10T05:59:00.000000000', '2015-05-14T06:33:38.000000000',
'2015-05-24T06:27:52.000000000', '2015-05-25T05:54:00.000000000',
'2015-05-30T06:01:00.000000000', '2016-02-09T14:48:18.000000000',
'2016-02-14T14:46:59.000000000', '2016-02-19T15:07:45.000000000',
'2016-02-24T14:14:17.000000000', '2017-01-02T06:23:20.000000000',
'2017-01-07T06:25:20.000000000', '2017-01-12T06:23:20.000000000',
'2017-01-17T06:26:20.000000000', '2017-01-22T06:22:20.000000000',
'2017-02-21T06:15:20.000000000', '2017-02-26T06:29:20.000000000',
'2017-03-03T06:29:20.000000000', '2018-05-07T01:39:23.000000000',
'2019-01-03T05:40:00.000000000', '2019-01-13T05:34:00.000000000',
'2019-01-23T05:39:00.000000000', '2019-02-02T05:33:00.000000000',
'2019-02-12T05:36:00.000000000', '2019-02-22T05:29:00.000000000',
'2019-03-04T05:32:00.000000000', '2019-03-14T05:36:00.000000000',
'2020-04-15T05:18:00.000000000', '2020-04-25T05:37:00.000000000',
'2020-05-25T05:29:00.000000000', '2020-12-10T18:26:00.000000000',
'2020-12-12T05:26:30.000000000', '2020-12-22T05:27:30.000000000',
'2021-01-01T05:33:30.000000000', '2021-01-11T05:37:30.000000000',
'2021-01-21T05:34:30.000000000', '2021-01-31T05:26:30.000000000',
'2021-02-10T05:37:30.000000000', '2021-02-20T05:30:30.000000000',
'2021-04-11T05:38:30.000000000', '2021-04-21T05:42:30.000000000',
'2021-05-01T05:46:30.000000000'], dtype='datetime64[ns]')array([-19.302 , -19.235 , -18.87 , -19.47299957,
-19.71800041, -19.259 , -19.483 , -19.414 ,
-18.873 , -19.064 , -19.575 , -19.538 ,
-19.502 , -19.575 , -19.743 , -18.87676667,
-18.855 , -18.92749667, -18.95606 , -18.978 ,
-19.464 , -18.93842167, -18.99732 , -18.9591 ,
-19.0942 , -19.1418 , -19.1425 , -19.26507 ,
-19.33983 , -19.43046333, -19.55742167, -19.752885 ,
-19.76117833, -19.57670167, -19.56884 , -19.7348 ,
-18.952 , -19.104 , -19.234 , -19.266 ,
-19.164 , -19.009 , -19.011 , -19.095 ,
-18.917 , -19.45 , -19.436 , -19.00882667,
-19.00287833, -19.10077167, -19.18482 , -19.22271333,
-19.26173167, -19.32334333, -19.46715667, -19.65580833,
-19.75431167, -19.47863 , -18.96217 ])array([29.08 , 29.311 , 29.784 , 29.99500084, 29.75900078,
29.981 , 29.499 , 29.401 , 29.631 , 29.065 ,
29.484 , 29.106 , 29.858 , 29.399 , 29.099 ,
29.20940333, 29.877 , 29.11013167, 29.02015 , 29.482 ,
29.468 , 29.14659167, 29.30861 , 29.2527 , 29.2881 ,
29.2294 , 29.0604 , 29.84341667, 29.61126833, 29.47364 ,
29.38462 , 29.34008 , 29.695575 , 29.45801667, 29.1975 ,
29.19438 , 29.985 , 29.671 , 29.335 , 29.124 ,
29.06 , 29.162 , 29.496 , 29.947 , 29.401 ,
29.711 , 29.441 , 29.165725 , 29.150605 , 29.13182833,
29.12126333, 29.09465167, 29.18438 , 29.42158667, 29.65736833,
29.91031 , 29.670635 , 29.50829 , 29.58076333])array([ 2., 2., 2., 1., 1., 1., 1., 1., 1., -1., -1., -1., -1.,
-1., -1., 4., 1., 4., 4., 1., 1., 4., 4., 61., 55., 61.,
64., 1., 1., 1., 1., 1., 1., 1., 1., 5., 2., 2., 2.,
2., 2., 2., 2., 2., 3., 3., 3., 1., 1., 2., 2., 2.,
2., 2., 2., 2., 2., 2., 2.])array([ 5., 6., 60., 6., 7., 113., 139., 140., 141., 50., 51.,
90., 93., 94., 95., 12., 182., 13., 14., 183., 184., 17.,
18., 126., 127., 128., 129., 12., 13., 14., 15., 16., 22.,
23., 24., 174., 22., 23., 24., 25., 26., 27., 28., 29.,
58., 59., 62., 1., 1., 2., 3., 4., 5., 6., 7.,
8., 13., 14., 15.])array(['D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D',
'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'D', 'R', 'R', 'R',
'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R',
'R', 'R', 'R', 'R', 'R', 'R', 'R'], dtype=object)array(['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'D', 'A', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A'], dtype=object)array([1900070., 1900070., 1900352., 1900735., 1900735., 6900512.,
6900512., 6900512., 6900512., 6901143., 6901143., 6901124.,
6901124., 6901124., 6901124., 6901246., 1901457., 6901246.,
6901246., 1901457., 1901457., 6901246., 6901246., 6901156.,
6901156., 6901156., 6901156., 6901248., 6901248., 6901248.,
6901248., 6901248., 6901248., 6901248., 6901248., 4901588.,
6901258., 6901258., 6901258., 6901258., 6901258., 6901258.,
6901258., 6901258., 6901254., 6901254., 6901254., 6903010.,
6903010., 6903010., 6903010., 6903010., 6903010., 6903010.,
6903010., 6903010., 6903010., 6903010., 6903010.])array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1.])array([[ 15. , 25. , 35. , ..., nan, nan, nan],
[ 15. , 25. , 35. , ..., nan, nan, nan],
[ 15. , 25. , 35. , ..., nan, nan, nan],
...,
[ 2.8, 4. , 4.8, ..., nan, nan, nan],
[ 3.1, 4. , 4.9, ..., 1987.9, 1992.9, 1997.1],
[ 3.1, 3.9, 4.7, ..., nan, nan, nan]],
dtype=float32)array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1.])array([[36.873, 36.869, 36.874, ..., nan, nan, nan],
[36.871, 36.875, 36.913, ..., nan, nan, nan],
[36.809, 36.815, 36.815, ..., nan, nan, nan],
...,
[36.835, 36.823, 36.837, ..., nan, nan, nan],
[36.878, 36.875, 36.875, ..., 35.112, 35.111, 35.109],
[36.928, 36.925, 36.93 , ..., nan, nan, nan]],
dtype=float32)array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1.])array([[19.40726409, 19.40543947, 19.4036139 , ..., nan,
nan, nan],
[19.78722774, 19.78537799, 19.78352625, ..., nan,
nan, nan],
[18.35436997, 18.33961695, 18.32886377, ..., nan,
nan, nan],
...,
[20.3764726 , 20.25924874, 20.06110463, ..., nan,
nan, nan],
[20.39541459, 20.40224444, 20.4040752 , ..., 4.21991799,
4.20463503, 4.19239349],
[20.66540943, 20.66725578, 20.67210415, ..., nan,
nan, nan]])array([[37.04708601, 37.04304076, 37.04805324, ..., nan,
nan, nan],
[37.04507499, 37.04907054, 37.08723592, ..., nan,
nan, nan],
[36.98278477, 36.9887898 , 36.98877804, ..., nan,
nan, nan],
...,
[37.00891139, 36.99685927, 37.01092647, ..., nan,
nan, nan],
[37.05211241, 37.04910114, 37.04910237, ..., 35.28230475,
35.2813159 , 35.27932028],
[37.10235176, 37.09933631, 37.10436188, ..., nan,
nan, nan]])array([[26.35062107, 26.34802296, 26.35231168, ..., nan,
nan, nan],
[26.24904555, 26.25257105, 26.282057 , ..., nan,
nan, nan],
[26.57246592, 26.58076757, 26.58347341, ..., nan,
nan, nan],
...,
[26.06405727, 26.08647652, 26.15025105, ..., nan,
nan, nan],
[26.09172676, 26.08759759, 26.08710412, ..., 27.85589967,
27.85676311, 27.85650052],
[26.05662937, 26.05383959, 26.05633067, ..., nan,
nan, nan]])array([[19.41 , 19.41 , 19.41 , ..., nan, nan, nan],
[19.79 , 19.79 , 19.79 , ..., nan, nan, nan],
[18.357, 18.344, 18.335, ..., nan, nan, nan],
...,
[20.377, 20.26 , 20.062, ..., nan, nan, nan],
[20.396, 20.403, 20.405, ..., 4.393, 4.378, 4.366],
[20.666, 20.668, 20.673, ..., nan, nan, nan]],
dtype=float32)array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1.])array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1.])array([ 5., 5., 3., 12., 1., 12., 12., 1., 1., 2., 2., 3., 4.,
4., 5., 4., 5., 5., 5., 5., 5., 5., 5., 2., 2., 2.,
2., 1., 1., 1., 1., 1., 2., 2., 3., 5., 1., 1., 1.,
2., 2., 2., 3., 3., 4., 4., 5., 12., 12., 12., 1., 1.,
1., 1., 2., 2., 4., 4., 5.])ds0b=ds0.isel(N_PROF=[0,1,2,3,4,5,6,7,8])
ds1b=ds1.isel(N_PROF=[0,1,2,3,4,5,6,7,8])
fig,ax = full_profiles(ds0=ds0b,ds1=ds1b)
ax[0,0].plot(px['TEMP'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=0.5,zorder=0)
ax[0,1].plot(px['PSAL'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=0.5,zorder=0)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Nearby profiles',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[1,0].plot(px['TEMP'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=0.5,zorder=0)
ax[1,1].plot(px['PSAL'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=0.5,zorder=0)
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Nearby profiles',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
<matplotlib.legend.Legend at 0x7f9c712f2fd0>
fig,ax = full_profiles(ds0=ds0b,ds1=ds1b,markersize=4)
ax[0,0].set_ylim(2000,1500)
ax[0,0].plot(px['TEMP'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=4,zorder=0)
ax[0,1].plot(px['PSAL'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=4,zorder=0)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Nearby profiles',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[1,0].plot(px['TEMP'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=4,zorder=0)
ax[1,1].plot(px['PSAL'],-gsw.z_from_p(px['PRES'],px['LATITUDE'].mean()),'.r',markersize=4,zorder=0)
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='RBR Floats',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Nearby profiles',markerfacecolor='r', markersize=10),
],loc='upper right', bbox_to_anchor=(1.3, 1))
ax[0,0].set_xlim(4,6.5); ax[1,0].set_xlim(4,6.5);
ax[0,1].set_xlim(35.,35.5); ax[1,1].set_xlim(35.,35.5);
# TS DIAGRAM
fig,ax = full_ts(ds0=ds0b,ds1=ds1b)
sc_b=ax[0].scatter(px['SA'],px['PTEMP'],c=px['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k',zorder=0)
sc_b=ax[1].scatter(px['SA'],px['PTEMP'],c=px['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k',zorder=0)
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Nearby profiles',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Nearby profiles',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c6682fc18>
# TS DIAGRAM
fig,ax = full_ts(ds0=ds0b,ds1=ds1b,vmin=27.8,vmax=27.9,sigma=40)
ax[0].set_ylim(4,7.5); ax[1].set_ylim(4,7.5)
ax[0].set_xlim(35.2,35.6); ax[1].set_xlim(35.2,35.6)
sc_b=ax[0].scatter(px['SA'],px['PTEMP'],c=px['SIG0'],s=20,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k',zorder=0)
sc_b=ax[1].scatter(px['SA'],px['PTEMP'],c=px['SIG0'],s=20,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k',zorder=0)
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Nearby profiles',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Nearby profiles',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c66566a20>
st25=pd.read_csv('../data/ref/RAPROCAN2012/Station25.csv',header=4,sep=';',names=['PRES','PSAL','TEMP'])
mt25={'latitude':29.17,'longitude':-19.00,'time':np.datetime64('2020-12-10T17:41:05')}
st25['SA'] = gsw.SA_from_SP(st25['PSAL'],st25['PRES'],mt25['longitude'],mt25['latitude'])
st25['PTEMP'] = gsw.pt0_from_t(st25['SA'],st25['TEMP'],st25['PRES'])
st25['SIG0'] = gsw.sigma0(st25['SA'], st25['PTEMP'])
st25.head()
| PRES | PSAL | TEMP | SA | PTEMP | SIG0 | |
|---|---|---|---|---|---|---|
| 0 | 8.0 | 36.9540 | 21.3449 | 37.128475 | 21.343339 | 25.870281 |
| 1 | 10.0 | 36.9541 | 21.3478 | 37.128578 | 21.345849 | 25.869658 |
| 2 | 12.0 | 36.9539 | 21.3508 | 37.128373 | 21.348458 | 25.868777 |
| 3 | 14.0 | 36.9539 | 21.3484 | 37.128369 | 21.345668 | 25.869552 |
| 4 | 16.0 | 36.9543 | 21.3442 | 37.128767 | 21.341078 | 25.871130 |
# LET's KEEP ONLY THE 1st PROFILES
ds0b=ds0.isel(N_PROF=[0,1,2,3])
ds1b=ds1.isel(N_PROF=[0,1,2,3])
fig,ax = full_profiles(ds0=ds0b,ds1=ds1b)
ax[0,0].set_ylim([2000,0]);
ax[0,0].plot(st25['TEMP'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=1)
ax[0,1].plot(st25['PSAL'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=1)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Station 25 - RAPROCAN2012 ',markerfacecolor='r', markersize=10),
],loc='lower right')
ax[1,0].plot(st25['TEMP'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=1)
ax[1,1].plot(st25['PSAL'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=1)
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Station 25 - RAPROCAN2012 ',markerfacecolor='r', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c6b8225c0>
fig,ax = full_profiles(ds0=ds0b,ds1=ds1b,markersize=4)
ax[0,0].set_ylim([2000,1500]);
ax[0,0].plot(st25['TEMP'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=4)
ax[0,1].plot(st25['PSAL'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=4)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Station 25 - RAPROCAN2012 ',markerfacecolor='r', markersize=10),
],loc='lower right')
ax[1,0].plot(st25['TEMP'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=4)
ax[1,1].plot(st25['PSAL'],-gsw.z_from_p(st25['PRES'],mt25['latitude']),'.r',markersize=4)
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='Station 25 - RAPROCAN2012 ',markerfacecolor='r', markersize=10),
],loc='lower right')
ax[0,0].set_xlim(4,6.5); ax[1,0].set_xlim(4,6.5);
ax[0,1].set_xlim(35.,35.5); ax[1,1].set_xlim(35.,35.5);
# TS DIAGRAM
fig,ax = full_ts(ds0=ds0b,ds1=ds1b)
sc_b=ax[0].scatter(st25['SA'],st25['PTEMP'],c=st25['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k',linewidths=0.5)
sc_b=ax[1].scatter(st25['SA'],st25['PTEMP'],c=st25['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k',linewidths=0.5)
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Station 25 - RAPROCAN2012',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Station 25 - RAPROCAN2012',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c680198d0>
# TS DIAGRAM
fig,ax = full_ts(ds0=ds0b,ds1=ds1b,vmin=27.8,vmax=27.9,sigma=40)
ax[0].set_ylim(4,7.5); ax[1].set_ylim(4,7.5)
ax[0].set_xlim(35.2,35.6); ax[1].set_xlim(35.2,35.6)
sc_b=ax[0].scatter(st25['SA'],st25['PTEMP'],c=st25['SIG0'],s=20,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k',linewidths=0.5)
sc_b=ax[1].scatter(st25['SA'],st25['PTEMP'],c=st25['SIG0'],s=20,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k',linewidths=0.5)
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Station 25 - RAPROCAN2012',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='Station 25 - RAPROCAN2012',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c67d044a8>
# GET DATA FROM REPO DATA COPY (cache=False because new profiles are added to the repo)
dsbe = DataFetcher(cache=False,src='localftp',local_ftp='/export/home/kbalem/Bureau/earise-rbr/data/floats/ftp',mode='expert').float(6903010).to_xarray()
# CALCULATE TEOS10 VARIABLE
dsbe.argo.teos10(['SA','SIG0','PTEMP'])
# TURN TO PROFILES
dsbe = dsbe.argo.point2profile()
dsbe
<xarray.Dataset>
Dimensions: (N_LEVELS: 1018, N_PROF: 20)
Coordinates:
* N_PROF (N_PROF) int64 0 1 2 3 4 5 6 ... 14 15 16 17 18 19
TIME (N_PROF) datetime64[ns] 2020-12-10T18:26:00 ......
* N_LEVELS (N_LEVELS) int64 0 1 2 3 4 ... 1014 1015 1016 1017
LATITUDE (N_PROF) float64 29.17 29.15 29.13 ... 30.8 30.97
LONGITUDE (N_PROF) float64 -19.01 -19.0 ... -18.82 -18.73
Data variables:
CONFIG_MISSION_NUMBER (N_PROF) int64 1 1 2 2 2 2 2 2 ... 2 2 2 2 2 2 2 2
CYCLE_NUMBER (N_PROF) int64 1 1 2 3 4 5 6 ... 14 15 16 17 18 19
DATA_CENTRE (N_PROF) <U2 'IF' 'IF' 'IF' ... 'IF' 'IF' 'IF'
DATA_MODE (N_PROF) <U1 'R' 'R' 'R' 'R' ... 'R' 'R' 'R' 'R'
DATA_STATE_INDICATOR (N_PROF) <U4 '2B ' '2B ' ... '2B ' '2B '
DC_REFERENCE (N_PROF) <U32 ' ...
DIRECTION (N_PROF) <U1 'D' 'A' 'A' 'A' ... 'A' 'A' 'A' 'A'
FIRMWARE_VERSION (N_PROF) <U32 '5900A04 ...
FLOAT_SERIAL_NO (N_PROF) <U32 'AI2600-19FR105 ...
PI_NAME (N_PROF) <U64 'Guillaume MAZE ...
PLATFORM_NUMBER (N_PROF) int64 6903010 6903010 ... 6903010 6903010
PLATFORM_TYPE (N_PROF) <U32 'ARVOR ...
POSITIONING_SYSTEM (N_PROF) <U8 'GPS ' 'GPS ' ... 'GPS '
POSITION_QC (N_PROF) int64 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
PRES (N_PROF, N_LEVELS) float32 8.7 10.4 ... nan nan
PRES_ADJUSTED (N_PROF, N_LEVELS) float32 nan nan nan ... nan nan
PRES_ADJUSTED_ERROR (N_PROF, N_LEVELS) float32 nan nan nan ... nan nan
PRES_ADJUSTED_QC (N_PROF) int64 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0
PRES_QC (N_PROF) int64 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
PROFILE_PRES_QC (N_PROF) <U1 'A' 'A' 'A' 'A' ... 'A' 'A' 'A' 'A'
PROFILE_PSAL_QC (N_PROF) <U1 'A' 'A' 'A' 'A' ... 'B' 'A' 'A' 'A'
PROFILE_TEMP_QC (N_PROF) <U1 'A' 'A' 'A' 'A' ... 'B' 'A' 'A' 'A'
PROJECT_NAME (N_PROF) <U64 'E-ARISE ...
PSAL (N_PROF, N_LEVELS) float32 36.946 36.947 ... nan
PSAL_ADJUSTED (N_PROF, N_LEVELS) float32 nan nan nan ... nan nan
PSAL_ADJUSTED_ERROR (N_PROF, N_LEVELS) float32 nan nan nan ... nan nan
PSAL_ADJUSTED_QC (N_PROF) int64 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0
PSAL_QC (N_PROF, N_LEVELS) int64 1 1 1 ... 99999 99999
PTEMP (N_PROF, N_LEVELS) float64 21.32 21.32 ... nan nan
SA (N_PROF, N_LEVELS) float64 37.12 37.12 ... nan nan
SIG0 (N_PROF, N_LEVELS) float64 25.89 25.89 ... nan nan
TEMP (N_PROF, N_LEVELS) float32 21.32 21.325 ... nan
TEMP_ADJUSTED (N_PROF, N_LEVELS) float32 nan nan nan ... nan nan
TEMP_ADJUSTED_ERROR (N_PROF, N_LEVELS) float32 nan nan nan ... nan nan
TEMP_ADJUSTED_QC (N_PROF) int64 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0
TEMP_QC (N_PROF, N_LEVELS) int64 1 1 1 ... 99999 99999
TIME_LOCATION (N_PROF) datetime64[ns] 2020-12-10T17:27:19 ......
TIME_QC (N_PROF) int64 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1
VERTICAL_SAMPLING_SCHEME (N_PROF) <U256 'Primary sampling: averaged [10 ...
WMO_INST_TYPE (N_PROF) int64 844 844 844 844 ... 844 844 844 844
Attributes:
DATA_ID: ARGO
DOI: http://doi.org/10.17882/42182
Fetched_from: /export/home/kbalem/Bureau/earise-rbr/data/floats/ftp
Fetched_by: kbalem
Fetched_date: 2021/06/17
Fetched_constraints: phy;WMO6903010
Fetched_uri: /export/home/kbalem/Bureau/earise-rbr/data/floats/f...
history: Transformed with point2profilearray([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19])array(['2020-12-10T18:26:00.000000000', '2020-12-12T05:26:30.000000000',
'2020-12-22T05:27:30.000000000', '2021-01-01T05:33:29.999999744',
'2021-01-11T05:37:30.000000000', '2021-01-21T05:34:30.000000000',
'2021-01-31T05:26:30.000000000', '2021-02-10T05:37:30.000000000',
'2021-02-20T05:30:30.000000000', '2021-03-02T05:38:30.000000000',
'2021-03-12T05:33:29.999999744', '2021-03-22T05:25:29.999999744',
'2021-04-01T05:35:30.000000000', '2021-04-11T05:38:30.000000000',
'2021-04-21T05:42:30.000000000', '2021-05-01T05:46:30.000000000',
'2021-05-11T05:45:30.000000000', '2021-05-21T05:47:30.000000000',
'2021-05-31T05:37:30.000000000', '2021-06-10T05:27:30.000000000'],
dtype='datetime64[ns]')array([ 0, 1, 2, ..., 1015, 1016, 1017])
array([29.165725 , 29.150605 , 29.13182833, 29.12126333, 29.09465167,
29.18438 , 29.42158667, 29.65736833, 29.91031 , 30.14338667,
30.22611333, 30.13541333, 29.86356 , 29.670635 , 29.50829 ,
29.58076333, 29.95490167, 30.46821667, 30.79612167, 30.96628167])array([-19.00882667, -19.00287833, -19.10077167, -19.18482 ,
-19.22271333, -19.26173167, -19.32334333, -19.46715667,
-19.65580833, -19.75253833, -19.77647 , -19.868995 ,
-19.82508833, -19.75431167, -19.47863 , -18.96217 ,
-18.65334 , -18.73503833, -18.81796667, -18.73460167])array([1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
array([ 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19])array(['IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF',
'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF', 'IF'], dtype='<U2')array(['R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R',
'R', 'R', 'R', 'R', 'R', 'R', 'R'], dtype='<U1')array(['2B ', '2B ', '2B ', '2B ', '2B ', '2B ', '2B ', '2B ',
'2B ', '2B ', '2B ', '2B ', '2B ', '2B ', '2B ', '2B ',
'2B ', '2B ', '2B ', '2B '], dtype='<U4')array([' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' '], dtype='<U32')array(['D', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A'], dtype='<U1')array(['5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 ',
'5900A04 '], dtype='<U32')array(['AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 ',
'AI2600-19FR105 '], dtype='<U32')array(['Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE ',
'Guillaume MAZE '],
dtype='<U64')array([6903010, 6903010, 6903010, 6903010, 6903010, 6903010, 6903010,
6903010, 6903010, 6903010, 6903010, 6903010, 6903010, 6903010,
6903010, 6903010, 6903010, 6903010, 6903010, 6903010])array(['ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR ',
'ARVOR '], dtype='<U32')array(['GPS ', 'GPS ', 'GPS ', 'GPS ', 'GPS ',
'GPS ', 'GPS ', 'GPS ', 'GPS ', 'GPS ',
'GPS ', 'GPS ', 'GPS ', 'GPS ', 'GPS ',
'GPS ', 'GPS ', 'GPS ', 'GPS ', 'GPS '],
dtype='<U8')array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
array([[ 8.7, 10.4, 12.3, ..., nan, nan, nan],
[ 2.8, 4. , 5. , ..., nan, nan, nan],
[ 3. , 4.2, 5. , ..., nan, nan, nan],
...,
[ 3. , 4. , 5.2, ..., nan, nan, nan],
[ 3.9, 5.3, 6.1, ..., nan, nan, nan],
[ 3. , 4.1, 4.8, ..., nan, nan, nan]], dtype=float32)array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
array(['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'A', 'A', 'A', 'A', 'A', 'A', 'A'], dtype='<U1')array(['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'A', 'A',
'A', 'A', 'A', 'B', 'A', 'A', 'A'], dtype='<U1')array(['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'A', 'A',
'A', 'A', 'A', 'B', 'A', 'A', 'A'], dtype='<U1')array(['E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE ',
'E-ARISE '],
dtype='<U64')array([[36.946, 36.947, 36.947, ..., nan, nan, nan],
[36.945, 36.945, 36.945, ..., nan, nan, nan],
[36.954, 36.957, 36.957, ..., nan, nan, nan],
...,
[36.971, 36.971, 36.971, ..., nan, nan, nan],
[37.025, 37.023, 37.023, ..., nan, nan, nan],
[36.962, 36.962, 36.964, ..., nan, nan, nan]],
dtype=float32)array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
array([[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999],
...,
[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999]])array([[21.31830394, 21.32297325, 21.32460151, ..., nan,
nan, nan],
[21.22645527, 21.22822286, 21.23002928, ..., nan,
nan, nan],
[20.9804228 , 20.9831898 , 20.9830356 , ..., nan,
nan, nan],
...,
[20.87942298, 20.87723205, 20.87800099, ..., nan,
nan, nan],
[20.89025121, 20.89998011, 20.89682806, ..., nan,
nan, nan],
[21.0174208 , 21.01820796, 21.01607403, ..., nan,
nan, nan]])array([[37.1204376 , 37.12144259, 37.12143883, ..., nan,
nan, nan],
[37.11942595, 37.11942744, 37.11942869, ..., nan,
nan, nan],
[37.12846748, 37.13148538, 37.13148642, ..., nan,
nan, nan],
...,
[37.14556279, 37.14556353, 37.14556442, ..., nan,
nan, nan],
[37.19982282, 37.19781157, 37.19781209, ..., nan,
nan, nan],
[37.13652682, 37.13652744, 37.13853617, ..., nan,
nan, nan]])array([[25.89078343, 25.89024791, 25.8897928 , ..., nan,
nan, nan],
[25.91548947, 25.91500105, 25.91450166, ..., nan,
nan, nan],
[25.99023381, 25.99176049, 25.99180368, ..., nan,
nan, nan],
...,
[26.03092169, 26.03152285, 26.03131274, ..., nan,
nan, nan],
[26.06908856, 26.06489469, 26.06575992, ..., nan,
nan, nan],
[25.98616411, 25.9859479 , 25.98805776, ..., nan,
nan, nan]])array([[21.32 , 21.325, 21.327, ..., nan, nan, nan],
[21.227, 21.229, 21.231, ..., nan, nan, nan],
[20.981, 20.984, 20.984, ..., nan, nan, nan],
...,
[20.88 , 20.878, 20.879, ..., nan, nan, nan],
[20.891, 20.901, 20.898, ..., nan, nan, nan],
[21.018, 21.019, 21.017, ..., nan, nan, nan]],
dtype=float32)array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
array([[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999],
...,
[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999],
[ 1, 1, 1, ..., 99999, 99999, 99999]])array(['2020-12-10T17:27:19.000000000', '2020-12-12T05:42:55.000000000',
'2020-12-22T05:43:29.000000000', '2021-01-01T05:49:25.000000000',
'2021-01-11T05:54:20.000000000', '2021-01-21T05:50:50.000000000',
'2021-01-31T05:42:52.000000256', '2021-02-10T05:54:05.000000000',
'2021-02-20T05:47:20.000000000', '2021-03-02T05:54:19.000000000',
'2021-03-12T05:49:44.000000000', '2021-03-22T05:41:55.000000000',
'2021-04-01T05:52:34.000000000', '2021-04-11T05:54:13.000000000',
'2021-04-21T05:59:23.000000256', '2021-05-01T06:02:27.000000000',
'2021-05-11T06:01:44.000000000', '2021-05-21T06:04:14.000000000',
'2021-05-31T05:53:43.000000000', '2021-06-10T05:42:55.000000000'],
dtype='datetime64[ns]')array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
array(['Primary sampling: averaged [10 sec sampling, 1 dbar average from surface to 400 dbar; 10 sec sampling, 2 dbar average from 400 dbar to 1400 dbar; 10 sec sampling, 5 dbar average from 1400 dbar to 1000 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.0 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.7 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.8 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.0 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.5 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.1 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.1 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.4 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.0 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.0 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.0 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.2 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.5 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.3 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.3 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.6 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.2 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.6 dbar] ',
'Primary sampling: averaged [10 sec sampling, 5 dbar average from 2000 dbar to 1400 dbar; 10 sec sampling, 2 dbar average from 1400 dbar to 400 dbar; 10 sec sampling, 1 dbar average from 400 dbar to 2.0 dbar] '],
dtype='<U256')array([844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
844, 844, 844, 844, 844, 844, 844])fig=plt.figure(figsize=(10,6))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
plt.plot(dsbe['LONGITUDE'],dsbe['LATITUDE'],'ro-',label='SBE 6903010')
plt.plot(ds0['LONGITUDE'],ds0['LATITUDE'],'bo-',label='RBR 6903075')
plt.plot(ds1['LONGITUDE'],ds1['LATITUDE'],'go-',label='RBR 6903076')
plt.xlim([-19.3,-18.9])
plt.ylim([29,29.2])
plt.legend()
<matplotlib.legend.Legend at 0x7f8ea44c55c0>
We'll plot only until CYCLE 10, after that profiles positions differ a bit
ds0b=ds0.isel(N_PROF=[0,1,2,3,4,5,6,7,8,9])
ds1b=ds1.isel(N_PROF=[0,1,2,3,4,5,6,7,8,9])
dsbe0=dsbe.isel(N_PROF=[0,1,2,3,4,5,6,7,8,9])
fig,ax = full_profiles(ds0=ds0b,ds1=ds1b)
ax[0,0].plot(dsbe0['TEMP'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=0.5)
ax[0,1].plot(dsbe0['PSAL'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=0.5)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='SBE Float 6903010',markerfacecolor='r', markersize=10),
],loc='lower right')
ax[1,0].plot(dsbe0['TEMP'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=0.5)
ax[1,1].plot(dsbe0['PSAL'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=0.5)
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='SBE Float 6903010',markerfacecolor='r', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c5ec63278>
# ZOOM
fig,ax = full_profiles(ds0=ds0b,ds1=ds1b,markersize=4)
ax[0,0].set_ylim([2000,1500]);
ax[0,0].plot(dsbe0['TEMP'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=4)
ax[0,1].plot(dsbe0['PSAL'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=4)
ax[0,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='SBE Float 6903010',markerfacecolor='r', markersize=10),
],loc='lower right')
ax[1,0].plot(dsbe0['TEMP'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=4)
ax[1,1].plot(dsbe0['PSAL'],-gsw.z_from_p(dsbe0['PRES'],dsbe0['LATITUDE'].mean()),'.r',markersize=4)
ax[1,1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='k', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label='SBE Float 6903010',markerfacecolor='r', markersize=10),
],loc='lower right')
ax[0,0].set_xlim(4,6.5); ax[1,0].set_xlim(4,6.5);
ax[0,1].set_xlim(35.,35.5); ax[1,1].set_xlim(35.,35.5);
# TS DIAGRAM
fig,ax = full_ts(ds0=ds0b,ds1=ds1b)
sc_b=ax[0].scatter(dsbe0['SA'],dsbe0['PTEMP'],c=dsbe0['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k',linewidths=0.5)
sc_b=ax[1].scatter(dsbe0['SA'],dsbe0['PTEMP'],c=dsbe0['SIG0'],s=20,cmap=cm.cm.matter,marker='o',edgecolor='k',linewidths=0.5)
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='SBE Float 6903010',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='SBE Float 6903010',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c54196fd0>
# TS DIAGRAM
fig,ax = full_ts(ds0=ds0b,ds1=ds1b,vmin=27.8,vmax=27.9,sigma=40)
ax[0].set_ylim(4,7.5); ax[1].set_ylim(4,7.5)
ax[0].set_xlim(35.2,35.6); ax[1].set_xlim(35.2,35.6)
sc_b=ax[0].scatter(ds1b['SA'],ds1b['PTEMP'],c=ds1b['SIG0'],s=10,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k',linewidths=0.5)
sc_b=ax[1].scatter(ds1b['SA'],ds1b['PTEMP'],c=ds1b['SIG0'],s=10,cmap=cm.cm.matter,vmin=27.8,vmax=27.9,marker='o',edgecolor='k',linewidths=0.5)
ax[0].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[0])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='SBE Float 6903010',markerfacecolor='orange', markersize=10),
],loc='lower right')
ax[1].legend(handles=[Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=0,
label=str(wmos[1])+' Float',markerfacecolor='orange', markersize=10),
Line2D([0], [0], marker='o', linewidth=0, markeredgewidth=1, color='k',
label='SBE Float 6903010',markerfacecolor='orange', markersize=10),
],loc='lower right')
<matplotlib.legend.Legend at 0x7f9c53f09d30>
from wrangling import interp_climatology
ref_sal = st25['SA'].values
ref_theta = st25['PTEMP'].values
ref_pres = st25['PRES'].values
#INTERP 6903075 ON ST25 THETA LEVELS
SA_i0, PR_i0 = interp_climatology(np.array([ds0.isel(N_PROF=1)['SA'].values,]*2).transpose(),
np.array([ds0.isel(N_PROF=1)['PTEMP'].values,]*2).transpose(),
np.array([ds0.isel(N_PROF=1)['PRES'].values,]*2).transpose(),
ref_sal, ref_theta, ref_pres)
SA_i0 = SA_i0[:,0]
PR_i0 = PR_i0[:,0]
#INTERP 6903076 ON ST25 THETA LEVELS
SA_i1, PR_i1 = interp_climatology(np.array([ds1.isel(N_PROF=1)['SA'].values,]*2).transpose(),
np.array([ds1.isel(N_PROF=1)['PTEMP'].values,]*2).transpose(),
np.array([ds1.isel(N_PROF=1)['PRES'].values,]*2).transpose(),
ref_sal, ref_theta, ref_pres)
SA_i1 = SA_i1[:,0]
PR_i1 = PR_i1[:,0]
#INTERP 6903010 ON ST25 THETA LEVELS
SA_i2, PR_i2 = interp_climatology(np.array([dsbe.isel(N_PROF=1)['SA'].values,]*2).transpose(),
np.array([dsbe.isel(N_PROF=1)['PTEMP'].values,]*2).transpose(),
np.array([dsbe.isel(N_PROF=1)['PRES'].values,]*2).transpose(),
ref_sal, ref_theta, ref_pres)
SA_i2 = SA_i2[:,0]
PR_i2 = PR_i2[:,0]
cl = ['#008744','#ffa700','#d62d20']
fig,ax = plt.subplots(1,2,figsize=(15,10),sharey=True)
ax[0].invert_yaxis();
ax[0].plot(SA_i0 - ref_sal, ref_pres,'-',linewidth=1.5,label='6903075',color=cl[0])
ax[0].plot(SA_i1 - ref_sal, ref_pres,'-',linewidth=1.5,label='6903076',color=cl[1])
ax[0].plot(SA_i2 - ref_sal, ref_pres,'-',linewidth=1.5,label='6903010',color=cl[2])
ax[0].legend()
ax[0].set_xlabel('$\Delta$ Salinity [psu] with St25',fontsize='large',fontweight='bold')
ax[0].set_ylabel('PRES [dba]',fontsize='large',fontweight='bold')
ax[1].plot(PR_i0 - ref_pres, ref_pres,'-',linewidth=1,label='6903075',color=cl[0])
ax[1].plot(PR_i1 - ref_pres, ref_pres,'-',linewidth=1,label='6903076',color=cl[1])
ax[1].plot(PR_i2 - ref_pres, ref_pres,'-',linewidth=1,label='6903010',color=cl[2])
ax[1].legend()
ax[1].set_xlabel('$\Delta$ Pressure [dba] with St25',fontsize='large',fontweight='bold')
plt.tight_layout()
#plt.ylim([2000,1200])
cl = ['#008744','#ffa700','#d62d20']
fig,ax = plt.subplots(2,2,figsize=(20,15),gridspec_kw={'height_ratios': [14, 1]})
ax[0,0].invert_yaxis();
ax[0,0].plot(SA_i0 - ref_sal, ref_pres,'-',linewidth=1.5,label='6903075',color=cl[0])
ax[0,0].plot(SA_i1 - ref_sal, ref_pres,'-',linewidth=1.5,label='6903076',color=cl[1])
ax[0,0].plot(SA_i2 - ref_sal, ref_pres,'-',linewidth=1.5,label='6903010',color=cl[2])
ax[0,0].legend(fontsize='large')
ax[0,0].set_xlabel('$\Delta$ Salinity [psu] with St25',fontsize='large',fontweight='bold')
ax[0,0].set_ylabel('PRES [dba]',fontsize='large',fontweight='bold')
ax[0,1].invert_yaxis();
ax[0,1].plot(PR_i0 - ref_pres, ref_pres,'-',linewidth=1,label='6903075',color=cl[0])
ax[0,1].plot(PR_i1 - ref_pres, ref_pres,'-',linewidth=1,label='6903076',color=cl[1])
ax[0,1].plot(PR_i2 - ref_pres, ref_pres,'-',linewidth=1,label='6903010',color=cl[2])
ax[0,1].legend(fontsize='large')
ax[0,1].set_xlabel('$\Delta$ Pressure [dba] with St25',fontsize='large',fontweight='bold')
ax[1,0].plot(np.nanmean((SA_i0 - ref_sal)),0,'s',markersize=15,markerfacecolor=cl[0],markeredgewidth=1,markeredgecolor='k')
ax[1,0].plot(np.nanmean((SA_i0 - ref_sal)[np.argwhere(ref_pres>1200)]),0,'v',markersize=15,markerfacecolor=cl[0],markeredgewidth=1,markeredgecolor='k')
ax[1,0].plot(np.nanmean((SA_i1 - ref_sal)),1,'s',markersize=15,markerfacecolor=cl[1],markeredgewidth=1,markeredgecolor='k')
ax[1,0].plot(np.nanmean((SA_i1 - ref_sal)[np.argwhere(ref_pres>1200)]),1,'v',markersize=15,markerfacecolor=cl[1],markeredgewidth=1,markeredgecolor='k')
ax[1,0].plot(np.nanmean((SA_i2 - ref_sal)),2,'s',markersize=15,markerfacecolor=cl[2],markeredgewidth=1,markeredgecolor='k')
ax[1,0].plot(np.nanmean((SA_i2 - ref_sal)[np.argwhere(ref_pres>1200)]),2,'v',markersize=15,markerfacecolor=cl[2],markeredgewidth=1,markeredgecolor='k')
ax[1,0].set_ylim([-0.5,2.5])
ax[1,0].legend(handles=[Line2D([0], [0], marker='s', linewidth=0, markeredgewidth=0,label='Profile',markerfacecolor='k', markersize=12),
Line2D([0], [0], marker='v', linewidth=0, markeredgewidth=0,label='>1200',markerfacecolor='k', markersize=12)],
bbox_to_anchor=(-0.02, 0.9),fontsize='large')
ax[1,1].plot(np.nanmean((PR_i0 - ref_pres)),0,'s',markersize=15,markerfacecolor=cl[0],markeredgewidth=1,markeredgecolor='k')
ax[1,1].plot(np.nanmean((PR_i0 - ref_pres)[np.argwhere(ref_pres>1200)]),0,'v',markersize=15,markerfacecolor=cl[0],markeredgewidth=1,markeredgecolor='k')
ax[1,1].plot(np.nanmean((PR_i1 - ref_pres)),1,'s',markersize=15,markerfacecolor=cl[1],markeredgewidth=1,markeredgecolor='k')
ax[1,1].plot(np.nanmean((PR_i1 - ref_pres)[np.argwhere(ref_pres>1200)]),1,'v',markersize=15,markerfacecolor=cl[1],markeredgewidth=1,markeredgecolor='k')
ax[1,1].plot(np.nanmean((PR_i2 - ref_pres)),2,'s',markersize=15,markerfacecolor=cl[2],markeredgewidth=1,markeredgecolor='k')
ax[1,1].plot(np.nanmean((PR_i2 - ref_pres)[np.argwhere(ref_pres>1200)]),2,'v',markersize=15,markerfacecolor=cl[2],markeredgewidth=1,markeredgecolor='k')
ax[1,1].set_ylim([-0.5,2.5])
ax[1,0].set_xlabel('Mean($\Delta$) [psu]',fontsize='large',fontweight='bold')
ax[1,1].set_xlabel('Mean($\Delta$) [dba]',fontsize='large',fontweight='bold')
ax[1,0].set_yticklabels([])
ax[1,1].set_yticklabels([])
plt.tight_layout()
def along_isot(isotherm):
fig,ax = plt.subplots(2,1,figsize=(18,12),sharex=True)
ds0_ai = ds0.where((ds0['PTEMP']<isotherm+.1)&(ds0['PTEMP']>isotherm-.1),drop=True).mean('N_LEVELS')
ds1_ai = ds1.where((ds1['PTEMP']<isotherm+.1)&(ds1['PTEMP']>isotherm-.1),drop=True).mean('N_LEVELS')
dsbe_ai = dsbe.where((dsbe['PTEMP']<isotherm+.1)&(dsbe['PTEMP']>isotherm-.1),drop=True).mean('N_LEVELS')
ax[0].plot(ds0_ai['CYCLE_NUMBER'],ds0_ai['PRES'],'o-',label=str(wmos[0]))
ax[0].plot(ds1_ai['CYCLE_NUMBER'],ds1_ai['PRES'],'o-',label=str(wmos[1]))
ax[0].plot(dsbe_ai['CYCLE_NUMBER'],dsbe_ai['PRES'],'o-',label='sbe 6903010')
#ax[0].set_xlabel('CYCLE')
ax[0].set_ylabel('PRES')
ax[0].legend()
ax[0].set_title('Pressure along isotherm '+str(isotherm)+'°C')
ax[1].plot(ds0_ai['CYCLE_NUMBER'],ds0_ai['SA'],'o-',label=str(wmos[0]))
ax[1].plot(ds1_ai['CYCLE_NUMBER'],ds1_ai['SA'],'o-',label=str(wmos[1]))
ax[1].plot(dsbe_ai['CYCLE_NUMBER'],dsbe_ai['SA'],'o-',label='sbe 6903010')
ax[1].set_xlabel('CYCLE')
ax[1].set_ylabel('Salinity')
ax[1].legend()
ax[1].set_title('Salinity along isotherm '+str(isotherm)+'°C')
return fig,ax
for i in [10.,5.]:
fig,ax = along_isot(i)
/opt/anaconda3/lib/python3.7/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype) /opt/anaconda3/lib/python3.7/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype) /opt/anaconda3/lib/python3.7/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype) /opt/anaconda3/lib/python3.7/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype) /opt/anaconda3/lib/python3.7/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype) /opt/anaconda3/lib/python3.7/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype)
Virginie :
Le 6903076 et le 6903010 sont proches en salinité le 6903075 est plus salé que les 2 autres mais plus proche de la station de référence.
donc le 6903076 et le 6903010 sous-estiment la salinité. il faudrait faire tourner OW sur le SBE 6903010 pour confirmer.
Objs :
Appliquer OWC sur les 3 flotteurs
Comparaison sur niveaux theta : profil de différence entre flotteurs/CTD sur niveaux theta
Envoyer données à M.Dever (WHOI)